home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD004b.dsk / KAFML.bas < prev    next >
BASIC Source File  |  2003-06-12  |  9KB  |  303 lines

  1. 5  REM  KAFML (SELECT AND LIST)
  2. 7  DIM R$(1)
  3. 10 D$ =  CHR$(4)
  4. 12  GOTO 7000
  5. 15  ONERR  GOTO 9000
  6. 20  PRINT D$"OPEN "NF$",L"RL
  7. 30  PRINT D$"READ "NF$",R0"
  8. 50  INPUT H1: INPUT L1: INPUT CD$: INPUT BD$
  9. 51 H1 = H1 -1000
  10. 52 L1 = L1 -1000
  11. 55  POKE 216,0
  12. 60  PRINT D$
  13. 65  GOTO 8000
  14. 7000  ONERR  GOTO 7700
  15. 7010  HOME 
  16. 7020  PRINT "ENTER FILE NAME";
  17. 7030  INPUT NF$
  18. 7040  PRINT D$"OPEN SCMA-"NF$",L60"
  19. 7050  PRINT D$"READ SCMA-"NF$",R0"
  20. 7060  INPUT FP: INPUT TY$: INPUT NF$: INPUT RL: INPUT LR
  21. 7070 FP = FP -100
  22. 7075  INPUT NF: INPUT NV: INPUT ND: INPUT NS
  23. 7076  DIM NZ$(NF),TZ$(NF),RZ$(NF),LZ(NF),VZ(NF),DZ(NF),FZ$(NF)
  24. 7077  DIM LD(NF),VC$(20),SN(60)
  25. 7078  DIM MZ$(NV),VZ$(NV),DZ$(ND),SZ$(NS)
  26. 7079 NF = 0:NV = 0:ND = 0:NS = 0
  27. 7080  POKE 216,0
  28. 7090  PRINT D$
  29. 7091  PRINT "LOADING SCMA-";NF$: PRINT 
  30. 7092  PRINT D$"READ SCMA-"NF$",R"FP
  31. 7100  INPUT FP: INPUT TY$:FP = FP -100
  32. 7120  IF TY$ = "N" GOTO 7500
  33. 7130  IF TY$ = "C" GOTO 7190
  34. 7140  IF TY$ = "V" GOTO 7350
  35. 7145  PRINT D$"CLOSE SCMA-"NF$
  36. 7150  GOTO 7600
  37. 7190  INPUT VP: INPUT DN$: INPUT RQ$: INPUT ML: INPUT DV$
  38. 7200 NF = NF +1
  39. 7210 NZ$(NF) = DN$
  40. 7220 TZ$(NF) = TY$
  41. 7230 RZ$(NF) = RQ$
  42. 7240 LZ(NF) = ML
  43. 7260  IF  LEN(DV$) <6 GOTO 7300
  44. 7270 ND = ND +1
  45. 7280 DZ$(ND) = DV$
  46. 7285 DZ(NF) = ND +1000
  47. 7290  GOTO 7330
  48. 7300 NS = NS +1
  49. 7310 SZ$(NS) = DV$
  50. 7320 DZ(NF) = NS
  51. 7330  IF VP = 0 GOTO 7090
  52. 7340 CR = FP:FP = VP
  53. 7345 VZ(NF) = (NV +1) *1000
  54. 7348  GOTO 7090
  55. 7350  INPUT MV$: INPUT VV$
  56. 7360 NV = NV +1
  57. 7370 VZ$(NV) = VV$
  58. 7380 MZ$(NV) = MV$
  59. 7400  IF FP < >0 GOTO 7090
  60. 7410 FP = CR
  61. 7420 VZ(NF) = VZ(NF) +NV
  62. 7430  GOTO 7090
  63. 7500  INPUT DN$: INPUT RQ$: INPUT MN: INPUT MX: INPUT DV
  64. 7510 NF = NF +1
  65. 7520 NZ$(NF) = DN$
  66. 7530 TZ$(NF) = TY$
  67. 7540 RZ$(NF) = RQ$
  68. 7550 LZ(NF) = MN
  69. 7560 VZ(NF) = MX
  70. 7570 DZ(NF) = DV
  71. 7580  GOTO 7090
  72. 7600  GOTO 15
  73. 7700  PRINT D$
  74. 7710  POKE 216,0
  75. 7720  HOME 
  76. 7730  PRINT "SCMA-";NF$;" NOT FOUND"
  77. 7740  PRINT "SCMA-";NF$;" IS REQUIRED"
  78. 7750  PRINT D$"DELETE SCMA-"NF$
  79. 7760  GOTO 9999
  80. 8000  HOME :I = 0
  81. 8002 I = I +1: IF I >NF GOTO 8006
  82. 8004 LD(I) = 0: GOTO 8002
  83. 8006  GOSUB 9400: INPUT "WANT ALL DATA FIELDS ON LIST?";R$
  84. 8008  IF R$ = "Y" GOTO 8038
  85. 8010  IF R$ = "N" GOTO 8014
  86. 8012  GOTO 8006
  87. 8014  GOSUB 9400: PRINT "TELL ME WHICH TO INCLUDE"
  88. 8016  GOSUB 9400: INPUT "ENTER DATA FIELD NAME ";VD$
  89. 8018 J = 0
  90. 8020 J = J +1: IF J >NF GOTO 8026
  91. 8022  IF VD$ = NZ$(J) GOTO 8028
  92. 8024  GOTO 8020
  93. 8026  PRINT VD$;" IS NOT A VALID DATA FIELD NAME": GOTO 8016
  94. 8028 LD(J) = 1
  95. 8030  INPUT "ANY MORE?";R$
  96. 8032  IF R$ = "Y" GOTO 8016
  97. 8034  IF R$ = "N" GOTO 8044
  98. 8036  GOTO 8030
  99. 8038 I = 0
  100. 8040 I = I +1: IF I >NF GOTO 8044
  101. 8042 LD(I) = 1: GOTO 8040
  102. 8044 CI = 0:SI = 0
  103. 8046  INPUT "WANT ALL RECORDS LISTED?";R$
  104. 8048  IF R$ = "Y" GOTO 8174
  105. 8050  IF R$ = "N" GOTO 8054
  106. 8052  GOTO 8046
  107. 8054  GOSUB 9400: PRINT "YOU MUST TELL ME WHICH TO SELECT"
  108. 8056  PRINT "EXAMPLE---SEX=M AND AGE>21"
  109. 8058 LO$ = " "
  110. 8060  GOSUB 9400: INPUT "ENTER DATA FIELD NAME ";VD$
  111. 8062 J = 0
  112. 8064 J = J +1: IF J >NF GOTO 8070
  113. 8066  IF VD$ = NZ$(J) GOTO 8072
  114. 8068  GOTO 8064
  115. 8070  PRINT VD$;" IS NOT A VALID DATA FIELD NAME": GOTO 8060
  116. 8072 SI = SI +1: IF SI >55 GOTO 8230
  117. 8074 SN(SI) = J
  118. 8076  GOSUB 9400: INPUT "ENTER OPERATOR  < = # >  ";OP$
  119. 8078  IF OP$ = "<" GOTO 8088
  120. 8080  IF OP$ = "=" GOTO 8088
  121. 8082  IF OP$ = "#" GOTO 8088
  122. 8084  IF OP$ = ">" GOTO 8088
  123. 8086  GOTO 8076
  124. 8088 SI = SI +1
  125. 8090  IF OP$ = "<" GOTO 8094
  126. 8091  IF OP$ = "=" GOTO 8095
  127. 8092  IF OP$ = "#" GOTO 8096
  128. 8093  IF OP$ = ">" GOTO 8097
  129. 8094 SN(SI) = 1: GOTO 8098
  130. 8095 SN(SI) = 2: GOTO 8098
  131. 8096 SN(SI) = 3: GOTO 8098
  132. 8097 SN(SI) = 4: GOTO 8098
  133. 8098  GOSUB 9400: PRINT "ENTER DATA VALUE ";
  134. 8100  IF TZ$(J) = "C" GOTO 8104
  135. 8102  INPUT VD: GOTO 8116
  136. 8104  INPUT VD$
  137. 8106  IF  LEN(VD$) >5 GOTO 8112
  138. 8108  IF  LEN(VD$) >LZ(J) GOTO 8114
  139. 8110  GOTO 8116
  140. 8112  PRINT "MAX OF 5 CHARACTERS ALLOWED": GOTO 8098
  141. 8114  PRINT "MAX LENGTH OF ";NZ$(J);" IS ";LZ(J): GOTO 8098
  142. 8116 SI = SI +1
  143. 8118  IF TZ$(J) = "N" GOTO 8124
  144. 8120 CI = CI +1: IF CI >20 GOTO 8230
  145. 8122 VC$(CI) = VD$:SN(SI) = CI: GOTO 8126
  146. 8124 SN(SI) = VD
  147. 8126  IF LO$ = "A" GOTO 8150
  148. 8128  IF LO$ = "O" GOTO 8152
  149. 8130  GOSUB 9400: INPUT "WANT TO TACK ON ANDS OR ORS?";R$
  150. 8132  IF R$ = "Y" GOTO 8138
  151. 8134  IF R$ = "N" GOTO 8161
  152. 8136  GOTO 8130
  153. 8138  GOSUB 9400: INPUT "WHICH? A = ANDS, O = ORS ";LO$
  154. 8140  IF LO$ = "A" GOTO 8146
  155. 8142  IF LO$ = "O" GOTO 8148
  156. 8144  GOTO 8138
  157. 8146 SI = SI +1:SN(SI) = 1: GOTO 8060
  158. 8148 SI = SI +1:SN(SI) = 2: GOTO 8060
  159. 8150  GOSUB 9400: PRINT "WANT TO TACK ON MORE ANDS?";: GOTO 8154
  160. 8152  GOSUB 9400: PRINT "WANT TO TACK ON MORE ORS?";
  161. 8154  INPUT R$
  162. 8156  IF R$ = "Y" GOTO 8140
  163. 8158  IF R$ = "N" GOTO 8161
  164. 8160  GOTO 8126
  165. 8161  GOSUB 9400: INPUT "WANT TO SPECIFY ADDITIONAL CRITERIA?";R$
  166. 8162  IF R$ = "Y" GOTO 8165
  167. 8163  IF R$ = "N" GOTO 8174
  168. 8164  GOTO 8161
  169. 8165  GOSUB 9400: PRINT "CRITERIA MUST BE CONNECTED BY AND OR OR"
  170. 8166  INPUT "WHICH? A=AND, O=OR ";SO$
  171. 8167  IF SO$ = "A" GOTO 8170
  172. 8168  IF SO$ = "O" GOTO 8172
  173. 8169  GOTO 8165
  174. 8170 SI = SI +1:SN(SI) = 10: GOTO 8058
  175. 8172 SI = SI +1:SN(SI) = 20: GOTO 8058
  176. 8174 SI = SI +1:SN(SI) = 99
  177. 8176  INPUT "TURN ON PRINTER & HIT RETURN";R$
  178. 8178  PRINT D$"PR#1"
  179. 8180  IF SN(1) = 99 GOTO 8300
  180. 8182 I = 0: PRINT : PRINT "SELECTION CRITERIA": GOSUB 9400
  181. 8184 I = I +1
  182. 8186 J = SN(I): PRINT NZ$(J);" ";:I = I +1
  183. 8188  IF SN(I) = 1 GOTO 8192
  184. 8189  IF SN(I) = 2 GOTO 8193
  185. 8190  IF SN(I) = 3 GOTO 8194
  186. 8191  IF SN(I) = 4 GOTO 8195
  187. 8192 R$ = "<": GOTO 8196
  188. 8193 R$ = "=": GOTO 8196
  189. 8194 R$ = "#": GOTO 8196
  190. 8195 R$ = ">": GOTO 8196
  191. 8196  PRINT R$;" ";
  192. 8198  IF TZ$(J) = "C" GOTO 8202
  193. 8200 I = I +1: PRINT SN(I): GOTO 8204
  194. 8202 I = I +1:K = SN(I): PRINT VC$(K)
  195. 8204 I = I +1: IF SN(I) = 99 GOTO 8220
  196. 8206  IF SN(I) >2 GOTO 8214
  197. 8208  IF SN(I) = 1 GOTO 8212
  198. 8210  PRINT "  0R": GOTO 8184
  199. 8212  PRINT "  AND": GOTO 8184
  200. 8214  GOSUB 9400: IF SN(I) = 10 GOTO 8218
  201. 8216  PRINT : PRINT  TAB( 18);"OR": PRINT : GOSUB 9400: GOTO 8184
  202. 8218  PRINT : PRINT  TAB( 18);"AND": PRINT : GOSUB 9400: GOTO 8184
  203. 8220  GOSUB 9400
  204. 8221  PRINT D$"PR#0"
  205. 8222  INPUT "SATISFIED WITH CRITERIA?";R$
  206. 8224  IF R$ = "Y" GOTO 8300
  207. 8226  IF R$ = "N" GOTO 8229
  208. 8228  GOTO 8222
  209. 8229  HOME : PRINT "START CRITERIA OVER": GOSUB 9450: GOTO 8044
  210. 8230  PRINT "*** CRITERIA CAPACITY EXCEEDED": GOTO 9500
  211. 8300  REM 
  212. 8310  PRINT D$"READ "NF$",R1"
  213. 8312  INPUT B: INPUT F:B = B -1000:F = F -1000
  214. 8314  IF F = H1 GOTO 9500
  215. 8315  PRINT "SEARCHING ";NF$: PRINT 
  216. 8316  PRINT D$"READ "NF$",R"F
  217. 8318  INPUT B: INPUT F: INPUT A1$:B = B -1000:F = F -1000
  218. 8320 FZ$(1) = A1$:I = 1
  219. 8322 I = I +1: IF I >NF GOTO 8326
  220. 8324  INPUT FZ$(I): GOTO 8322
  221. 8326  IF SN(1) = 99 GOTO 8426
  222. 8328 J = 0
  223. 8329 J = J +1
  224. 8330 K = SN(J): IF TZ$(K) = "N" GOTO 8356
  225. 8332 J = J +1: IF SN(J) = 1 GOTO 8340
  226. 8334  IF SN(J) = 2 GOTO 8344
  227. 8336  IF SN(J) = 3 GOTO 8348
  228. 8338  IF SN(J) = 4 GOTO 8352
  229. 8340 J = J +1:L = SN(J): IF FZ$(K) <VC$(L) GOTO 8382
  230. 8342  GOTO 8384
  231. 8344 J = J +1:L = SN(J): IF FZ$(K) = VC$(L) GOTO 8382
  232. 8346  GOTO 8384
  233. 8348 J = J +1:L = SN(J): IF FZ$(K) < >VC$(L) GOTO 8382
  234. 8350  GOTO 8384
  235. 8352 J = J +1:L = SN(J): IF FZ$(K) >VC$(L) GOTO 8382
  236. 8354  GOTO 8384
  237. 8356 K =  VAL(FZ$(K)):J = J +1
  238. 8358  IF SN(J) = 1 GOTO 8366
  239. 8360  IF SN(J) = 2 GOTO 8370
  240. 8362  IF SN(J) = 3 GOTO 8374
  241. 8364  IF SN(J) = 4 GOTO 8378
  242. 8366 J = J +1: IF K <SN(J) GOTO 8382
  243. 8368  GOTO 8384
  244. 8370 J = J +1: IF K = SN(J) GOTO 8382
  245. 8372  GOTO 8384
  246. 8374 J = J +1: IF K < >SN(J) GOTO 8382
  247. 8376  GOTO 8384
  248. 8378 J = J +1: IF K >SN(J) GOTO 8382
  249. 8380  GOTO 8384
  250. 8382 TV$ = "T": GOTO 8386
  251. 8384 TV$ = "F"
  252. 8386 J = J +1: IF SN(J) = 99 GOTO 8422
  253. 8388  IF SN(J) = 1 GOTO 8396
  254. 8390  IF SN(J) = 2 GOTO 8404
  255. 8392  IF SN(J) = 10 GOTO 8414
  256. 8394  IF SN(J) = 20 GOTO 8418
  257. 8396  IF TV$ = "T" GOTO 8329
  258. 8398 J = J +4: IF SN(J) = 1 GOTO 8398
  259. 8399  IF SN(J) = 99 GOTO 8314
  260. 8400  IF SN(J) = 10 GOTO 8314
  261. 8402  GOTO 8329
  262. 8404  IF TV$ = "F" GOTO 8329
  263. 8406 J = J +4: IF SN(J) = 2 GOTO 8406
  264. 8408  IF SN(J) = 99 GOTO 8426
  265. 8410  IF SN(J) = 20 GOTO 8426
  266. 8412  GOTO 8329
  267. 8414  IF TV$ = "T" GOTO 8329
  268. 8416  GOTO 8314
  269. 8418  IF TV$ = "F" GOTO 8329
  270. 8420  GOTO 8426
  271. 8422  IF TV$ = "T" GOTO 8426
  272. 8424  GOTO 8314
  273. 8426  PRINT D$"PR#1"
  274. 8427  GOSUB 9400:I = 0
  275. 8428 I = I +1: IF I >NF GOTO 8450
  276. 8430  IF LD(I) = 0 GOTO 8428
  277. 8432  PRINT NZ$(I); TAB( 16);FZ$(I);
  278. 8434  IF TZ$(I) = "C" GOTO 8438
  279. 8436  PRINT : GOTO 8428
  280. 8438  IF VZ(I) = 0 GOTO 8436
  281. 8440 X =  INT(VZ(I)/1000):Y = VZ(I) -(X *1000)
  282. 8442  IF FZ$(I) = VZ$(X) GOTO 8448
  283. 8444 X = X +1: IF X >Y GOTO 8436
  284. 8446  GOTO 8442
  285. 8448  PRINT  TAB( 24);MZ$(X): GOTO 8428
  286. 8450  PRINT D$"PR#0"
  287. 8452  GOTO 8314
  288. 9000  PRINT D$
  289. 9005  POKE 216,0
  290. 9010  HOME 
  291. 9020  PRINT NF$;" NOT MOUNTED"
  292. 9100  PRINT "MOUNT DISKETTE WITH ";NF$;" AND RERUN"
  293. 9110  PRINT D$"DELETE "NF$
  294. 9120  GOTO 9999
  295. 9400  PRINT "--------------------";
  296. 9410  PRINT "-------------------": RETURN 
  297. 9450 Q3 = 0
  298. 9460 Q3 = Q3 +1: IF Q3 >50 GOTO 9480
  299. 9470  GOTO 9460
  300. 9480  RETURN 
  301. 9500  PRINT D$"CLOSE "NF$
  302. 9501  PRINT D$"PR#0"
  303. 9999  PRINT D$"RUN JELLO"